home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / qed_397 / sourcen / fsel.h < prev    next >
C/C++ Source or Header  |  1995-12-09  |  4KB  |  143 lines

  1. #ifndef _QED_FSEL_H_
  2. #define _QED_FSEL_H_
  3.  
  4. #include <portab.h>
  5. #include <tos.h>
  6. #include <aes.h>
  7.  
  8. #define CMD_FILES_OUT    0x01        /* return filelist */
  9. #define CFG_ONESTRING    0x02        /* return list in one string */
  10. #define CFG_FIRSTNEXT    0x08
  11.  
  12. /* ------------------------------------------------------------------------- */
  13. /* ----- Selectric Structure ----------------------------------------------- */
  14. /* ------------------------------------------------------------------------- */
  15.  
  16. typedef struct
  17. {
  18.     ULONG        id;                        /* Selectric ID (SLCT)        */
  19.     UWORD        version;                    /* version (BCD-Format)        */
  20.     struct
  21.     {
  22.         unsigned                : 7;        /* reserved                            */
  23.         unsigned todaytime: 1;
  24.         unsigned pthsav    : 1;        /* save GEMDOS paths                */
  25.         unsigned stdest    : 1;        /* stay in destination path    */
  26.         unsigned                : 1;        /* reserved                            */
  27.         unsigned numsrt    : 1;        /* numsort                             */
  28.         unsigned lower        : 1;        /* use lowercase letters        */
  29.         unsigned dclick    : 1;        /* open folder on dclick        */
  30.         unsigned hidden    : 1;        /* show hidden files                */
  31.         unsigned bypass    : 1;        /* Selectric ON/OFF                 */
  32.     } config;
  33.     WORD        sort;                        /* sort-mode (neg. = rev.)    */
  34.     WORD        num_ext;                    /* number of extensions        */
  35.     UBYTE        *(*ext)[];                /* preset extensions        */
  36.     WORD        num_paths;                /* number of paths        */
  37.     UBYTE        *(*paths)[];            /* preset paths            */
  38.     WORD        comm;                        /* communication word        */
  39.     WORD        in_count;                /* input counter        */
  40.     VOID        *in_ptr;                    /* input pointer        */
  41.     WORD        out_count;                /* output counter        */
  42.     VOID        *out_ptr;                /* output pointer        */
  43.     WORD        cdecl    (*get_first)(DTA *dta, int attrib);
  44.     WORD        cdecl (*get_next)(DTA *dta);
  45.     WORD        cdecl    (*release_dir)(void);
  46. } SLCT_STR;
  47.  
  48. /* ------------------------------------------------------------------------- */
  49.  
  50.  
  51. BOOLEAN    fsel_check        (VOID);
  52. /*
  53.  * Prüft nach, ob ein FSEL-Cookie vorhanden ist.
  54. */
  55.  
  56. BOOLEAN    slct_check        (UWORD version);
  57. /*
  58.  * Checkt, ob Selectric installiert ist und ob es die Mindest-Versionsnummer 
  59.  * besitzt.
  60. */
  61.  
  62. WORD    slct_morenames        (WORD mode, WORD num, VOID *str);
  63. /*
  64.  * Initialisiert Selectric so, daß es weiß, daß mehr als ein Name zurückgegeben 
  65.  * werden kann.
  66. */
  67.  
  68. WORD    slct_getnum            (VOID);
  69. /*
  70.  * Liefert die Anzahl der ausgewählten Dateien zurück.
  71. */
  72.  
  73. WORD    slct_first            (DTA *mydta, WORD attr);
  74. /*
  75.  * Wurde das Communication-Byte auf CFG_FIRSTNEXT gesetzt, so kann man über 
  76.  * diese Funktion den ersten selektierten Namen mit dem entsprechenden Attribut 
  77.  * bekommen.
  78. */
  79.  
  80. WORD    slct_next            (DTA *mydta);
  81. /*
  82.  * Nachdem man mit slct_first() den ersten Namen zurückbekommt, kann man über 
  83.  * diese Funktion weitere Namen erhalten.
  84. */
  85.  
  86. WORD     slct_release        (VOID);
  87. /*
  88.  * Gibt das Verzeichnis wieder frei (Wichtig!).
  89. */
  90.  
  91. /* ------------------------------------------------------------------------- */
  92. /* ----- Freedom Structure ------------------------------------------------- */
  93. /* ------------------------------------------------------------------------- */
  94.  
  95. typedef struct
  96. {
  97.     LONG    magic;                    /* '?Fdm' */
  98.     WORD    id;                        /* Beliebige Id */
  99.     WORD    maxsel;                    /* Maximale Anzahl von zu selektierenden Files */
  100.     struct
  101.     {
  102.         unsigned fullpaths: 1;    /* volle Pfadnamen in der Antwort */
  103.         unsigned doquote    : 1;    /* Freedom darf quoten */
  104.         unsigned noname     : 1;    /* keinen Appl.-Namen vor Titel */
  105.         unsigned sysmodal    : 1;    /* System-Modal öffnen (örgs..) */
  106.         unsigned resvd        : 28; /* reserviert (auf 0 setzen) */
  107.     }         flags;
  108.     WORD    handle;                    /* Enthält nach Erfolg das Fensterhandle des 
  109.                                             Fileselektors (bzw. 0 bei einem fliegenden 
  110.                                             Dialog). Sinn: Das aufrufende Programm kann 
  111.                                             den Fileselektor kontrollieren, indem es etwa 
  112.                                             eine WIN_CLOSED-Nachricht dafür an Freedom 
  113.                                             sendet, oder das Fenster in sein Window-Cycle 
  114.                                             mit einbezieht.
  115.                                         */
  116.     WORD    server;                    /* Enthält nach Erfolg die Appl.-Id des 
  117.                                             Fileselektor-Servers. An ihn können Nachrichten
  118.                                             bzgl. des Fensters 'handle' gesendet werden.
  119.                                         */
  120.     UBYTE    path[0];                    /* jetzt kommt der der Pfad.. */
  121. } Fdm_Str;
  122.  
  123.  
  124. #ifndef FILE_SELECTED
  125. #define FILE_SELECTED    0x4560
  126. #endif
  127.  
  128. #ifndef WIN_TOPPED
  129. #define WIN_TOPPED        0x7A22
  130. #endif
  131.  
  132. #ifndef WIN_CLOSED
  133. #define WIN_CLOSED        0x7A23
  134. #endif
  135.  
  136.  
  137. WORD     freedom_check        (VOID);
  138. /*
  139.  * Checkt, ob Freedom installiert ist.
  140. */
  141.  
  142. #endif
  143.